
	package com.droidcar;

	import java.util.ArrayList;
	import java.util.List;

	import android.content.ContentValues;
	import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
	
	public class FavoritosDB {

			
		private Integer VCL_CODIGO 	 	 = 0;
		private Integer CMB_CODIGO 	 	 = 0;
		private Integer COR_CODIGO 	 	 = 0;
		private Integer MDO_CODIGO 	 	 = 0;
		private String  VCL_OBSERVACAO	 = "";
		private float 	VCL_VALOR		 = 0;
		private Integer VCL_ANO			 = 0;
		private float   VCL_KM			 = 0;	
		private int		MCA_CODIGO		 = 0;
		private String	VCL_IMG_MINI	 = null;
		private String	VCL_IMG_NORMAL	 = null;		
		private final String NOME_TABELA = "FAVORITOS";			
		private SQLiteDatabase objDados;

		public String getVCL_IMG_MINI() {
			return VCL_IMG_MINI;
		}

		public void setVCL_IMG_MINI(String vCL_IMG_MINI) {
			VCL_IMG_MINI = vCL_IMG_MINI;
		}

		public String getVCL_IMG_NORMAL() {
			return VCL_IMG_NORMAL;
		}

		public void setVCL_IMG_NORMAL(String vCL_IMG_NORMAL) {
			VCL_IMG_NORMAL = vCL_IMG_NORMAL;
		}

		public FavoritosDB(SQLiteDatabase pObjDados) {
			objDados = pObjDados;
		}		
		
		public Boolean CREATE_TABLE(Boolean pIf_exists) {
			String pSql = "CREATE TABLE ";

			if (pIf_exists)
				pSql += " IF NOT EXISTS ";

			pSql += NOME_TABELA + " (" + "VCL_CODIGO 		INTEGER PRIMARY KEY, "
			  						   + "CMB_CODIGO  		INTEGER, 			 "
			  						   + "MCA_CODIGO		INTEGER,			 "
			  						   + "COR_CODIGO  		INTEGER, 			 "
			  						   + "MDO_CODIGO  		INTEGER, 			 "
			  						   + "VCL_OBSERVACAO  	VARCHAR(255), 		 "
			  						   + "VCL_IMG_MINI		TEXT,				 "
			  						   + "VCL_IMG_NORMAL    TEXT,                "
			  						   + "VCL_VALOR  		FLOAT, 				 "
			  						   + "VCL_ANO  			INTEGER, 			 "
			  						   + "VCL_KM  			FLOAT )				 ";

			objDados.execSQL(pSql);
			return true;
		}

		public void DROP_TABELA() {
			objDados.execSQL("DROP TABLE IF EXISTS " + NOME_TABELA);
		}

		public void INSERT() {
			ContentValues biblioteca = new ContentValues();
			if (VCL_CODIGO > 0)
				biblioteca.put("VCL_CODIGO", VCL_CODIGO);
			biblioteca.put("CMB_CODIGO", CMB_CODIGO);
			biblioteca.put("MCA_CODIGO", MCA_CODIGO);
			biblioteca.put("COR_CODIGO", COR_CODIGO);
			biblioteca.put("MDO_CODIGO", MDO_CODIGO);
			biblioteca.put("VCL_OBSERVACAO", VCL_OBSERVACAO);
			biblioteca.put("VCL_VALOR", VCL_VALOR);
			biblioteca.put("VCL_ANO", VCL_ANO);
			biblioteca.put("VCL_KM", VCL_KM);
			biblioteca.put("VCL_IMG_MINI",VCL_IMG_MINI);
			biblioteca.put("VCL_IMG_NORMAL",VCL_IMG_NORMAL);			
			objDados.insert(NOME_TABELA, null, biblioteca);
		}

		public List<FavoritosDB> SELECT(String pCondicao) {
			List<FavoritosDB> list = new ArrayList<FavoritosDB>();
			Cursor cursor = objDados.query(NOME_TABELA, new String[] {  "VCL_CODIGO", "CMB_CODIGO",
																		"COR_CODIGO", "MDO_CODIGO",
																		"VCL_OBSERVACAO", "VCL_VALOR", 
																		"VCL_ANO", "VCL_KM", "MCA_CODIGO", 
																		"VCL_IMG_MINI", "VCL_IMG_NORMAL" }, pCondicao, null, null, null, null);
			if (cursor.moveToFirst()) {
				do {
					FavoritosDB objCad = new FavoritosDB(objDados);
					objCad.VCL_CODIGO 		= cursor.getInt(0);
					objCad.CMB_CODIGO 	 	= cursor.getInt(1);
					objCad.COR_CODIGO 	 	= cursor.getInt(2);
					objCad.MDO_CODIGO		= cursor.getInt(3);
					objCad.VCL_OBSERVACAO	= cursor.getString(4);
					objCad.VCL_VALOR		= cursor.getFloat(5);
					objCad.VCL_ANO			= cursor.getInt(6);
					objCad.VCL_KM			= cursor.getFloat(7);
					objCad.MCA_CODIGO		= cursor.getInt(8);
					objCad.VCL_IMG_MINI		= cursor.getString(9);
					objCad.VCL_IMG_NORMAL   = cursor.getString(10);
					list.add(objCad);

				} while (cursor.moveToNext());
			}
			if (cursor != null && !cursor.isClosed()) {
				cursor.close();
			}
			return list;
		}

		public Cursor SELECT_NVG(String pCondicao) {
			Cursor cursor = objDados.query(NOME_TABELA, new String[] {  "VCL_CODIGO", "CMB_CODIGO",
																		"COR_CODIGO", "MDO_CODIGO",
																		"VCL_OBSERVACAO", "VCL_VALOR", 
																		"VCL_ANO", "VCL_KM", "MCA_CODIGO", 
																		"VCL_IMG_MINI", "VCL_IMG_NORMAL" }, pCondicao, null, null, null, null);

			return cursor;
		}

		public Integer getVCL_CODIGO() {
			return VCL_CODIGO;
		}

		public void setVCL_CODIGO(Integer vCL_CODIGO) {
			VCL_CODIGO = vCL_CODIGO;
		}

		public Integer getCMB_CODIGO() {
			return CMB_CODIGO;
		}

		public void setCMB_CODIGO(Integer cMB_CODIGO) {
			CMB_CODIGO = cMB_CODIGO;
		}

		public Integer getCOR_CODIGO() {
			return COR_CODIGO;
		}

		public void setCOR_CODIGO(Integer cOR_CODIGO) {
			COR_CODIGO = cOR_CODIGO;
		}

		public Integer getMDO_CODIGO() {
			return MDO_CODIGO;
		}

		public void setMDO_CODIGO(Integer cMDO_CODIGO) {
			MDO_CODIGO = cMDO_CODIGO;
		}

		public String getVCL_OBSERVACAO() {
			return VCL_OBSERVACAO;
		}

		public void setVCL_OBSERVACAO(String vCL_OBSERVACAO) {
			VCL_OBSERVACAO = vCL_OBSERVACAO;
		}

		public float getVCL_VALOR() {
			return VCL_VALOR;
		}

		public void setVCL_VALOR(float vCL_VALOR) {
			VCL_VALOR = vCL_VALOR;
		}

		public Integer getVCL_ANO() {
			return VCL_ANO;
		}

		public void setVCL_ANO(Integer vCL_ANO) {
			VCL_ANO = vCL_ANO;
		}

		public float getVCL_KM() {
			return VCL_KM;
		}

		public void setVCL_KM(float vCL_KM) {
			VCL_KM = vCL_KM;
		}
		
		public int getMCA_CODIGO(){
			return MCA_CODIGO;
		}
		
		public void setMCA_CODIGO(int mCA_CODIGO){
			MCA_CODIGO = mCA_CODIGO;		
		}
		
		public ArrayList<VeiculosBD> retornaListaFavoritos(){
			
			ArrayList<VeiculosBD> listaVeiculos = new ArrayList<VeiculosBD>();
			
			ModeloBD modelo 	= new ModeloBD(objDados);
			MarcaBD  marca  	= new MarcaBD(objDados);
			CombustivelBD comb  = new CombustivelBD(objDados);
			CorBD  cor  		= new CorBD(objDados);			
			
			List<FavoritosDB> lista = SELECT("");
			for( int i = 0; i < lista.size(); i++){
				
				 
				VeiculosBD veic = new VeiculosBD();
				veic.setVCL_CODIGO(lista.get(i).VCL_CODIGO);
				
				veic.setMCA_CODIGO(lista.get(i).MCA_CODIGO);
				marca = marca.SELECT("MCA_CODIGO = "+lista.get(i).MCA_CODIGO).get(0);
				veic.setMCA_DESCRICAO(marca.getMCA_DESCRICAO());
				
				veic.setMDO_CODIGO(lista.get(i).MDO_CODIGO);
				modelo = modelo.SELECT("MDO_CODIGO = "+lista.get(i).MDO_CODIGO+" AND MCA_CODIGO = "+lista.get(i).MCA_CODIGO).get(0);
				veic.setMDO_DESCRICAO(modelo.getMDO_DESCRICAO());
				
				veic.setCMB_CODIGO(lista.get(i).CMB_CODIGO);
				comb   = comb.SELECT("CMB_CODIGO = "+lista.get(i).CMB_CODIGO).get(0);				
				veic.setCMB_DESCRICAO(comb.getCMB_DESCRICAO());
				
				veic.setCOR_CODIGO(lista.get(i).COR_CODIGO);
				cor = cor.SELECT("COR_CODIGO = "+lista.get(i).COR_CODIGO).get(0);
				veic.setCOR_DESCRICAO(cor.getCOR_DESCRICAO());
				
				veic.setVCL_ANO(lista.get(i).VCL_ANO);
				veic.setVCL_KM(lista.get(i).VCL_KM);
				veic.setVCL_OBSERVACAO(lista.get(i).VCL_OBSERVACAO);
				veic.setVCL_VALOR(lista.get(i).VCL_VALOR);
				veic.setVCL_IMG_MINI(lista.get(i).VCL_IMG_MINI);
				veic.setVCL_IMG_NORMAL(lista.get(i).VCL_IMG_NORMAL);
				
				listaVeiculos.add(veic);
				
			}
			
			return listaVeiculos;
			
		}
		
		public VeiculosBD retornaVeiculo(String pCondicao){
			
			
			ModeloBD modelo 	= new ModeloBD(objDados);
			MarcaBD  marca  	= new MarcaBD(objDados);
			CombustivelBD comb  = new CombustivelBD(objDados);
			CorBD  cor  		= new CorBD(objDados);			
			
			List<FavoritosDB> lista = SELECT(pCondicao);
			if(lista.size() > 0){
				
				 
				VeiculosBD veic = new VeiculosBD();
				veic.setVCL_CODIGO(lista.get(0).VCL_CODIGO);
				
				veic.setMCA_CODIGO(lista.get(0).MCA_CODIGO);
				marca = marca.SELECT("MCA_CODIGO = "+lista.get(0).MCA_CODIGO).get(0);
				veic.setMCA_DESCRICAO(marca.getMCA_DESCRICAO());
				
				veic.setMDO_CODIGO(lista.get(0).MDO_CODIGO);
				modelo = modelo.SELECT("MDO_CODIGO = "+lista.get(0).MDO_CODIGO+" AND MCA_CODIGO = "+lista.get(0).MCA_CODIGO).get(0);
				veic.setMDO_DESCRICAO(modelo.getMDO_DESCRICAO());
				
				veic.setCMB_CODIGO(lista.get(0).CMB_CODIGO);
				comb   = comb.SELECT("CMB_CODIGO = "+lista.get(0).CMB_CODIGO).get(0);				
				veic.setCMB_DESCRICAO(comb.getCMB_DESCRICAO());
				
				veic.setCOR_CODIGO(lista.get(0).COR_CODIGO);
				cor = cor.SELECT("COR_CODIGO = "+lista.get(0).COR_CODIGO).get(0);
				veic.setCOR_DESCRICAO(cor.getCOR_DESCRICAO());
				
				veic.setVCL_ANO(lista.get(0).VCL_ANO);
				veic.setVCL_KM(lista.get(0).VCL_KM);
				veic.setVCL_OBSERVACAO(lista.get(0).VCL_OBSERVACAO);
				veic.setVCL_VALOR(lista.get(0).VCL_VALOR);
				veic.setVCL_IMG_MINI(lista.get(0).getVCL_IMG_MINI());
				veic.setVCL_IMG_NORMAL(lista.get(0).getVCL_IMG_NORMAL());				
				
				return veic;
				
			}
			
			return null;
			
		}


	}
	


